﻿
using WMS.FC.Domain.DataTransferObject.System;
using WMS.FC.Domain.DomainObject.System;

namespace WMS.FC.Application.System.Interface
{
    public interface ISystemService
    {
        /// <summary>
        /// 获取页面配置
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetPageConfig(GetPageConfigDTO dTO);

        /// <summary>
        /// 获取页面数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetPageData(GetPageDataDTO dTO);

        /// <summary>
        /// 获取数据字典
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetDictionary(GetDictionaryDTO dTO);

        /// <summary>
        /// 获取数据字典类型
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetDictionaryType(RequestBase dTO);

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> AddData(HandleButtonDTO dTO);

        /// <summary>
        /// 编辑数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> EditData(HandleButtonDTO dTO);

        /// <summary>
        /// 批量编辑
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> BatchEditData(HandleButtonDTO dTO);

        /// <summary>
        /// 查看数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> ViewData(HandleButtonDTO dTO);

        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> ExportData(HandleButtonDTO dTO);

        /// <summary>
        /// 操作数据
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> OperateData(HandleButtonDTO dTO);
    }
}
